import { diff_prop } from '../../../Classes/cla_diff_prop';
import { prop_static_name_prefix } from '../../../DataDefine/sourceData';
import { cur_compare_type } from '../Types';
import { compare_linkObj } from './cla_compare_linkObj';
import { typ_val_same_describe } from './cla_deepth_diff_type';

const compare_more_sameTag = 'compare_more_same';

export const prop_static_more_same_index = `${prop_static_name_prefix}_more_same_index`;

const prop_static_same_describe = `${prop_static_name_prefix}_same_describe`;

/**
 * 数组 类型 比对结果
 */
export class compare_more_same {
  get [Symbol.toStringTag]() {
    return compare_more_sameTag;
  }

  constructor() {}

  [_: string]:
    | (number | string)[]
    | (number | string)
    | typ_val_same_describe
    | undefined
    | cur_compare_type;

  /**
   * 当前 比对 索引集
   */
  data: (number | string)[] = [];

  /**
   * 以 最先出现 分数最高 为 最优解
   * 最相似 的 index 值
   */
  [prop_static_more_same_index]?: number | string;

  /**
   * 相似度 描述
   */
  [prop_static_same_describe]?: typ_val_same_describe;
}
